public class Test8 {
    public static void main(String[] args) {
        //递归求解汉诺塔问题
        //n==1;  A -> C     1 : 2^1-1
        //n==2;  A -> B   A -> C   B -> C   3:2^2-1
        //n==3;  A -> C   A -> B   C -> B   A -> C   B  > A   B -> C  A -> C    7 2^3-1

        hanno(3,'A','B','C');
    }

    //参数一 起始位置    参数二 中间位置    参数三 目的地址
    public static void hanno(int n,char pos1, char pos2, char pos3) {
        if(n==1) {
            move(pos1,pos3);
            return;
        }
        hanno(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        hanno(n-1,pos2,pos1,pos3);
    }
    public static void move(char pos1,char pos2) {
        System.out.print(pos1 + "->" + pos2 + " ");
    }
}
